//
//  DLPickerView.h
//  DLPickerView
//
//  Created by 伍明鹏 on 2019/12/12.
//

#import <UIKit/UIKit.h>

/**
 *  弹出日期类型
 */
typedef enum{
    DateStyleShowYearMonthDayHourMinute  = 0,//年月日时分
    DateStyleShowMonthDayHourMinute,//月日时分
    DateStyleShowYearMonthDay,//年月日
    DateStyleShowYearMonth,//年月
    DateStyleShowMonthDay,//月日
    DateStyleShowHourMinute,//时分
    DateStyleShowYear,//年
    DateStyleShowMonth,//月
    DateStyleShowDayHourMinute,//日时分
    unDateStyleShow//非时间类型
}DLDateStyle;


@interface ResponseSelectionOption : NSObject
@property (nonatomic, copy) NSString *name; //选项名称
@property (nonatomic, copy) NSString *oId;  //选项ID
@end


@interface DLPickerView : UIView

/**
 *  标题
 */
@property (nonatomic,copy)NSString *pickerViewTitle;
/**
 *  确定按钮颜色
 */
@property (nonatomic,strong)UIColor *doneButtonColor;
/**
 *  年-月-日-时-分 文字颜色(默认橙色)
 */
@property (nonatomic,strong)UIColor *dateLabelColor;
/**
 *  滚轮日期颜色(默认黑色)
 */
@property (nonatomic,strong)UIColor *datePickerColor;

/**
 *  限制最大时间（默认2099）datePicker大于最大日期则滚动回最大限制日期 [NSDate date:@"2099-12-31 23:59" WithFormat:@"yyyy-MM-dd HH:mm"]
 */
@property (nonatomic, retain) NSDate *maxLimitDate;
/**
 *  限制最小时间（默认0） datePicker小于最小日期则滚动回最小限制日期
 */
@property (nonatomic, retain) NSDate *minLimitDate;

/**
 *  大号年份字体颜色(默认灰色)想隐藏可以设置为clearColor
 */
@property (nonatomic, retain) UIColor *yearLabelColor;

/**
 *  隐藏背景年份文字
 */
@property (nonatomic, assign) BOOL hideBackgroundYearLabel;
/**
* 点击选择器下面固定按钮回调
*/
@property (nonatomic, copy) void(^selectLongTimeBtnBlock)(void);
/**
* 选择器下面固定按钮wenzi
*/
@property (nonatomic, strong) UILabel *longTimeTitleLab;
/**
* 是否显示“长期”
*/
@property (nonatomic, assign) BOOL showLongTime;
/**
* 是否显示“至今”
*/
@property (nonatomic, assign) BOOL showToNow;
/**
 默认滚动到当前时间
 @params datePickerStyle 日期类型
 @params maxYear 最大年限
 @params minYear 最小年限
 @params completeBlock 选中日期回调
 */
-(instancetype)initWithDateStyle:(DLDateStyle)datePickerStyle maxYear:(NSInteger)maxYear minYear:(NSInteger)minYear completeBlock:(void(^)(NSDate *))completeBlock;

/**
 滚动到指定的的日期
 @params datePickerStyle 日期类型c
 @params maxYear 最大年限
 @params minYear 最小年限
 @params scrollToDate 滚动到指定日期
 @params completeBlock 选中日期回调
 */
-(instancetype)initWithDateStyle:(DLDateStyle)datePickerStyle maxYear:(NSInteger)maxYear minYear:(NSInteger)minYear scrollToDate:(NSDate *)scrollToDate completeBlock:(void(^)(NSDate *))completeBlock;

/**
从指定时间为开始时间/截止时间
@params datePickerStyle 日期类型
@params maxYearStr 最大年限 yyyy-MM-dd格式
@params minYearStr 最小年限 yyyy-MM-dd格式
@params completeBlock 选中日期回调
*/
-(instancetype)initWithDateStyle:(DLDateStyle)datePickerStyle maxYearStr:(NSString *)maxYearStr minYearStr:(NSString *)minYearStr completeBlock:(void(^)(NSDate *))completeBlock;

/**
 滚动选项
 @params array 数据
 @params completeBlock 选中回调
 */
-(instancetype)initWithData:(NSArray <NSArray <ResponseSelectionOption*>*>*)array completeBlock:(void(^)(NSArray<ResponseSelectionOption *> *))completeBlock;

/**
 滚动到指定选项
 @params array 数据
 @params scrollToSelected 选择指定位置数据
 @params completeBlock 选中回调
 */
-(instancetype)initWithData:(NSArray <NSArray <ResponseSelectionOption*>*>*)array scrollToSelected:(NSArray<ResponseSelectionOption *> *)scrollToSelected completeBlock:(void(^)(NSArray<ResponseSelectionOption *> *))completeBlock;

-(void)show;


@end

